package edu.xidian.sei

import scala.BigDecimal
import scala.collection.mutable.HashSet
import scala.io.Source
import scala.math.BigDecimal.double2bigDecimal
import scala.math.BigDecimal.int2bigDecimal

object Main {
  //  def main(args: Array[String]): Unit = {
  //    //    Space(6, 0.05, 1)
  //    ////    Space.dimenSelected = Array(1, 3, 5)
  //    //    val s = Array(1, 3, 5)
  //    //   Space.partialNeighbors(3).foreach { x => println(x.mkString(" ")) }
  //    //    println(Space.partialNeighbors(3).size)
  //    //    println(s.dropRight(s.length - 2).mkString(" "))
  //    val format = new DecimalFormat("0.000000000");
  //    val array = Array[Double](0.3, 0.5)
  //    val s = array.map(x => format.format(x))
  //    println(s.mkString(" "))
  //  }
//  val eachDimension = Array.ofDim[(BigDecimal, Long)](32, 101)
//  def main(args: Array[String]): Unit = {
//
//    (0 until eachDimension.size) foreach { i =>
//      (0 until eachDimension(i).size) foreach { j =>
//        eachDimension(i)(j) = (BigDecimal(0), 0)
//      }
//    }
//
//    (0 until eachDimension.size) foreach { i =>
//
//    }
//    val set = new HashSet[Int]
//    val filereader = Source.fromFile(".\\standercup")
//    val buffer = new collection.mutable.ArrayBuffer[Array[Int]]
//    for (line <- filereader.getLines) {
//      //      val array = line.split("[;|,|\\s]")
//      //      buffer += Location.of(Array(array(13), array(14)))
//      buffer += line.split("[;|,|\\s]").map { x => (x.toDouble / 0.01).toInt }
//    }
//    val startTime = System.nanoTime()
//    var num = 0
//    buffer.foreach {
//      l =>
//        num += 1
//        if (num % 10000 == 0)
//          println(num)
//        //        println(l.mkString(" "))
//        //        updateDimen(l, num)
//        set.add(l(12))
//    }
//
//    println(set.size)
// }
    //    val ies = (0 until eachDimension.length).map { i =>
    //      var sum = BigDecimal(0)
    //      (0 until eachDimension(i).length).foreach { j =>
    //        val oldUD = eachDimension(i)(j)._2
    //        eachDimension(i)(j) = ((Math.pow(0.99997, num - oldUD) * eachDimension(i)(j)._1), num)
    //        sum = sum + eachDimension(i)(j)._1
    //      }
    //
    //      //      println(sum)
    //
    //      var ie = 0.0
    //      (0 until eachDimension(i).length).foreach { j =>
    //        val temp = eachDimension(i)(j)._1 / sum
    //        print(temp + "$$$")
    //        if (temp > 0.001) {
    //          print(temp.doubleValue() * Math.log(temp.doubleValue()) + " ")
    //          ie += ie - temp.doubleValue() * Math.log(temp.doubleValue())
    //        } else {
    //          print(0 + " ")
    //          ie += 0.0
    //        }
    //      }
    //      println()
    //      println(i + "    " + ie)
    //      println()
    //      ie
    //    }
    //
    //    (0 until ies.length).foreach { i =>
    //      println(i + 1 + "    " + ies(i))
    //    }

  def main(args: Array[String]): Unit = {
    val map = Map("s"->"s")



  }
 

//  def updateDimen(index: Array[Int], time: Long) {
//    (0 until index.size).foreach { i =>
//      //      println(i + " " + index(i))
//      val oldUD = eachDimension(i)(index(i))._2
//      eachDimension(i)(index(i)) = ((Math.pow(0.99997, time - oldUD) * eachDimension(i)(index(i))._1) + 1, time)
//    }
//  }
}